package com.hskn.hss.module.tlempsalary.to;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "人员基本工资支出薪资明细请求体-更新", description = "人员基本工资支出薪资明细请求体-更新")
@Data
@EqualsAndHashCode(callSuper = false)
public class TlEmpSalaryUpdateTO implements Serializable {

    @ApiModelProperty(value = "id", name = "id", example = "123", required = true)
    private String id;
    /**
     * 人员id
     */
    @ApiModelProperty(value = "人员id", name = "empid", example = "3f1faac50b76085c4496400a21da1531", required = true)
    @NotNull(message = "人员ID不能为空")
    @NotBlank(message = "人员ID不能为空")
    private String empid;
    /**
     * 部门id
     */
    @ApiModelProperty(value = "部门id", name = "empdeptid", example = "05fc631946a1414e895c460be6f5be91", required = true)
    private String empdeptid;

    /**
     * 月份
     */
    @ApiModelProperty(value = "月份", name = "month", dataType = "String", example = "2021-09")
    private String month;

    /**
     * 实发工资
     */
    @ApiModelProperty(value = "实发工资", name = "totalsalary", dataType = "BigDecimal", example = "1", required = true)
    @NotNull(message = "实发工资不能为空")
    private BigDecimal totalsalary;

    /**
     * 发放日期
     */
    @ApiModelProperty(value = "发放日期", name = "paydate", dataType = "Date", example = "2021-09-16", required = true)
    @NotNull(message = "发放日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date paydate;

    /**
     * 考勤天数
     */
    private Integer attendays;

    /**
     * 在岗天数
     */
    private Integer onguarddays;

    /**
     * 附件url
     */
    private String fileurl;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", name = "remark", dataType = "String", example = "")
    private String remark;

    /**
     * 基本工资
     */
    @ApiModelProperty(value = "基本工资", name = "basicSalary", dataType = "BigDecimal", example = "")
    private BigDecimal basicSalary;

    /**
     * 岗位工资
     */
    @ApiModelProperty(value = "岗位工资", name = "postSalary", dataType = "BigDecimal", example = "")
    private BigDecimal postSalary;

    /**
     * 绩效工资
     */
    @ApiModelProperty(value = "绩效工资", name = "meritSalary", dataType = "BigDecimal", example = "")
    private BigDecimal meritSalary;

    /**
     * 补贴
     */
    @ApiModelProperty(value = "补贴", name = "subsidy", dataType = "BigDecimal", example = "")
    private BigDecimal subsidy;

    /**
     * 社保
     */
    @ApiModelProperty(value = "社保", name = "soicalSecurity", dataType = "BigDecimal", example = "")
    private BigDecimal socialSecurity;

    /**
     * 公积金
     */
    @ApiModelProperty(value = "公积金", name = "providentFund", dataType = "BigDecimal", example = "")
    private BigDecimal providentFund;

    /**
     * 个税
     */
    @ApiModelProperty(value = "个税", name = "incomeTax", dataType = "BigDecimal", example = "")
    private BigDecimal incomeTax;

    /**
     * 扣税
     */
    @ApiModelProperty(value = "扣税", name = "deduction", dataType = "BigDecimal", example = "")
    private BigDecimal deduction;
    /**
     * 扣款天数
     */
    @ApiModelProperty(value = "扣款天数", name = "subMoneyDays", dataType = "Integer", example = "")
    private Integer subMoneyDays;

    /**
     * 其他支出
     */
    @ApiModelProperty(value = "其他支出", name = "otherpay", dataType = "BigDecimal", example = "")
    private BigDecimal otherpay;

}
